<%
// Generates and inserts the quicklinks box for the SVG Reference.
//
// Parameters: None.

var s_svg_href = '/'+env.locale+'/docs/Web/SVG';
var s_svg_ref_href = '/'+env.locale+'/docs/Web/SVG/Element';
var s_svg_ref_title = 'SVG Elements';
switch (env.locale) {
    case 'fr':
        s_svg_href = '/'+env.locale+'/docs/SVG';
        s_svg_ref_href = '/'+env.locale+'/docs/Web/SVG/Element';
        s_svg_ref_title = 'Éléments SVG';
        break;
    default: break;
}

// Find the section of SVG this page belongs to (that is the first tag of the form "SVG XYZ")
var tags = env.tags;
var foundTag = '';
if (tags || typeof tags != 'undefined') {
    for (const tag of tags) {
        if( tag && tag != s_svg_ref_title && tag.substr(0, 4) == 'SVG ') {
            foundTag = tag;
            break;
        }
    }
}

// Find the SVG Tags belonging to the same subject

var resultSVG = [];
if (foundTag) {
    // Find the pages, sub-pages of SVG/Element that are tagged with that specific tag
    var pageList = await page.subpagesExpand(s_svg_ref_href);   // Get subpages, including tags

    for (aPage of pageList) {
        if (page.hasTag(aPage, foundTag)) {
            resultSVG.push(aPage.slug.split("/").pop(-1).toLowerCase());
        }
    }
}

var resultAPI = [];

function wrapSVGElement(name) {
  return template("SVGElement", [name, "SVGRef"]);
}

if (s_svg_href) {  %>
  <section class="Quick_links" id="Quick_Links">
  <ol>
   <% if (foundTag) {
        for (aTitle of resultSVG) { // SVG entities matching
  %>
            <li><%- await wrapSVGElement(aTitle) %></li>
  <%    }
    } %>
   <li><details><summary><%-s_svg_ref_title%></summary><ol>
 <li>A
   <ol>
     <li><%-await wrapSVGElement("a")%></li>
     <li class="deprecatedElement"><%-await wrapSVGElement("altGlyph")%></li>
     <li class="deprecatedElement"><%-await wrapSVGElement("altGlyphDef")%></li>
     <li class="deprecatedElement"><%-await wrapSVGElement("altGlyphItem")%></li>
     <li><%-await wrapSVGElement("animate")%></li>
     <li><%-await wrapSVGElement("animateColor")%></li>
     <li><%-await wrapSVGElement("animateMotion")%></li>
     <li><%-await wrapSVGElement("animateTransform")%></li>
   </ol>
 </li>
 <li>B-C
   <ol>
     <li><%-await wrapSVGElement("circle")%></li>
     <li><%-await wrapSVGElement("clipPath")%></li>
     <li class="deprecatedElement"><%-await wrapSVGElement("color-profile")%></li>
     <li><%-await wrapSVGElement("cursor")%></li>
   </ol>
 </li>
 <li>D
   <ol>
     <li><%-await wrapSVGElement("defs")%></li>
     <li><%-await wrapSVGElement("desc")%></li>
   </ol>
 </li>
 <li>E
   <ol>
     <li><%-await wrapSVGElement("ellipse")%></li>
   </ol>
 </li>
 <li>F
   <ol>
     <li><%-await wrapSVGElement("feBlend")%></li>
     <li><%-await wrapSVGElement("feColorMatrix")%></li>
     <li><%-await wrapSVGElement("feComponentTransfer")%></li>
     <li><%-await wrapSVGElement("feComposite")%></li>
     <li><%-await wrapSVGElement("feConvolveMatrix")%></li>
     <li><%-await wrapSVGElement("feDiffuseLighting")%></li>
     <li><%-await wrapSVGElement("feDisplacementMap")%></li>
     <li><%-await wrapSVGElement("feDistantLight")%></li>
     <li><%-await wrapSVGElement("feFlood")%></li>
     <li><%-await wrapSVGElement("feFuncA")%></li>
     <li><%-await wrapSVGElement("feFuncB")%></li>
     <li><%-await wrapSVGElement("feFuncG")%></li>
     <li><%-await wrapSVGElement("feFuncR")%></li>
     <li><%-await wrapSVGElement("feGaussianBlur")%></li>
     <li><%-await wrapSVGElement("feImage")%></li>
     <li><%-await wrapSVGElement("feMerge")%></li>
     <li><%-await wrapSVGElement("feMergeNode")%></li>
     <li><%-await wrapSVGElement("feMorphology")%></li>
     <li><%-await wrapSVGElement("feOffset")%></li>
     <li><%-await wrapSVGElement("fePointLight")%></li>
     <li><%-await wrapSVGElement("feSpecularLighting")%></li>
     <li><%-await wrapSVGElement("feSpotLight")%></li>
     <li><%-await wrapSVGElement("feTile")%></li>
     <li><%-await wrapSVGElement("feTurbulence")%></li>
     <li><%-await wrapSVGElement("filter")%></li>
     <li><%-await wrapSVGElement("font")%></li>
     <li><%-await wrapSVGElement("font-face")%></li>
     <li><%-await wrapSVGElement("font-face-format")%></li>
     <li><%-await wrapSVGElement("font-face-name")%></li>
     <li><%-await wrapSVGElement("font-face-src")%></li>
     <li><%-await wrapSVGElement("font-face-uri")%></li>
     <li><%-await wrapSVGElement("foreignObject")%></li>
   </ol>
 </li>
 <li>G
   <ol>
     <li><%-await wrapSVGElement("g")%></li>
     <li><%-await wrapSVGElement("glyph")%></li>
     <li class="deprecatedElement"><%-await wrapSVGElement("glyphRef")%></li>
   </ol>
 </li>
 <li>H
   <ol>
     <li><%-await wrapSVGElement("hkern")%></li>
   </ol>
 </li>
 <li>I
   <ol>
     <li><%-await wrapSVGElement("image")%></li>
   </ol>
 </li>
 <li>J-L
   <ol>
     <li><%-await wrapSVGElement("line")%></li>
     <li><%-await wrapSVGElement("linearGradient")%></li>
   </ol>
 </li>
 <li>M
   <ol>
     <li><%-await wrapSVGElement("marker")%></li>
     <li><%-await wrapSVGElement("mask")%></li>
     <li><%-await wrapSVGElement("metadata")%></li>
     <li><%-await wrapSVGElement("missing-glyph")%></li>
     <li><%-await wrapSVGElement("mpath")%></li>
   </ol>
 </li>
 <li>N-P
   <ol>
     <li><%-await wrapSVGElement("path")%></li>
     <li><%-await wrapSVGElement("pattern")%></li>
     <li><%-await wrapSVGElement("polygon")%></li>
     <li><%-await wrapSVGElement("polyline")%></li>
   </ol>
 </li>
 <li>Q-R
   <ol>
     <li><%-await wrapSVGElement("radialGradient")%></li>
     <li><%-await wrapSVGElement("rect")%></li>
   </ol>
 </li>
 <li>S
   <ol>
     <li><%-await wrapSVGElement("script")%></li>
     <li><%-await wrapSVGElement("set")%></li>
     <li><%-await wrapSVGElement("stop")%></li>
     <li><%-await wrapSVGElement("style")%></li>
     <li><%-await wrapSVGElement("svg")%></li>
     <li><%-await wrapSVGElement("switch")%></li>
     <li><%-await wrapSVGElement("symbol")%></li>
   </ol>
 </li>
 <li>T
   <ol>
     <li><%-await wrapSVGElement("text")%></li>
     <li><%-await wrapSVGElement("textPath")%></li>
     <li><%-await wrapSVGElement("title")%></li>
     <li class="deprecatedElement"><%-await wrapSVGElement("tref")%></li>
     <li><%-await wrapSVGElement("tspan")%></li>
   </ol>
 </li>
 <li>U
   <ol>
     <li><%-await wrapSVGElement("use")%></li>
   </ol>
 </li>
 <li>V-Z
   <ol>
     <li><%-await wrapSVGElement("view")%></li>
     <li><%-await wrapSVGElement("vkern")%></li>
   </ol>
 </li>
   </ol></li></details>
   </ol>
  </section>
<%}%>
